package com.gugee.ins.data.collector.bloggerfollowing.config;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * InsBloggerFollowingConfig
 * @author Huangxin
 */
@Configuration
@Getter
public class InsBloggerFollowingConfig {

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.collector.insBloggerFollowing.logTime.debug.limit:50}", autoRefreshed = true)
    long bloggerFollowingDebugTimeLimit;

    /**
     * insBloggerFollowing 主线程池数
     */
    @Value(value="${ins.data.threadpools.insBloggerFollowing.corePollSize}")
    int insBloggerFollowingCorePollSize;

    /**
     * insBloggerFollowing kafka topic
     */
    @Value(value="${kafka.topics.insBloggerFollowing.online}")
    String insBloggerFollowingOnlineTopic;

    /**
     * insBloggerPriority kafka topic
     */
    @Value(value="${kafka.topics.insBloggerPriorityCollect.online}")
    String insBloggerPriorityCollectOnlineTopic;

    /**
     * insMBloggerActiveFollowerDataSt kafka topic
     */
    @Value(value="${kafka.topics.insMBloggerActiveFollowerDataSt.priority}")
    String insMBloggerActiveFollowerDataStPriorityTopic;

    /**
     * insMBloggerActiveFollowerDataStPriority 消息重发最大次数
     */
    @NacosValue(value="${ins.data.analysis.message.insMBloggerActiveFollowerDataStPriority.retry:1}", autoRefreshed = true)
    int insMBloggerActiveFollowerDataStPriorityRetryTimes;

    /**
     * insComment 消息重发最大次数
     */
    @NacosValue(value="${ins.data.collector.message.insBloggerFollowing.retry:1}", autoRefreshed = true)
    int insBloggerFollowingRetryTimes;

    /**
     * insBloggerPriority 消息重发最大次数
     */
    @NacosValue(value="${ins.data.collector.message.insBloggerPriority.retry:1}", autoRefreshed = true)
    int insBloggerPriorityRetryTimes;

    /**
     * insBloggerFollowing 消息时限范围
     */
    @NacosValue(value="${ins.data.collector.insBloggerFollowing.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsBloggerFollowingMsgTimeMinRange;

    /**
     * 每次爬取关注列表的条数，0：默认值
     */
    @NacosValue(value="${ins.spider.insBloggerFollowing.each.count:0}", autoRefreshed = true)
    int insSpiderBloggerFollowingEachCount;

    /**
     * 采集活跃粉丝所关注的条数
     */
    @NacosValue(value="${ins.data.collector.activeFollower.following.count:1000}", autoRefreshed = true)
    int insActiveFollowerFollowingCount;

    /**
     * 活跃粉丝关注采集时的最小关注数
     */
    @NacosValue(value="${ins.data.collector.insBloggerFollowing.min.count:0}", autoRefreshed = true)
    int insBloggerFollowingClMinCount;

    /**
     * 关注采集更新后,一定时间内不再采集 单位天
     */
    @NacosValue(value="${ins.data.collector.insBloggerFollowing.intervals.day:7}", autoRefreshed = true)
    int insBloggerFollowingClIntervalDay;

    /**
     * 采集活跃粉丝关注列表的活跃粉丝数
     */
    @NacosValue(value="${ins.data.collector.insBloggerFollowing.activeFollower.count:100}", autoRefreshed = true)
    int insBloggerFollowingClActiveFollowerCount;
}
